/**
  Программа имитации системы передачи информации.
  Код:       код Рида-Соломона (31, 20)
  Декодер:   на основе Алгоритма Евклида
  Канал:     Гаусовский канал
  Модуляция: QAM 32

  Авторы: Орлов Никита Александрович студент ГУАП группы 5712

  Цель программы: Получить навыки работы с системой передачи данных, освоить основные
                  принципы декодирования БЧХ кодов, лучше понять специфику своей
                  специальности.

  История версий: 0.01

  Технические возможности: расчет графика зависимости вероятности ошибки от отношения
                           сигнал-шум и генерация .m файла для его отображения.
  **/

#include "../RScode/source/ReedSolomon/reedsolomon.h"
#include <QtGui>

int main(int argc, char *argv[])
try {
  // !!!!!!!!! может стоит задавать РС в том числе l0, а может и не приводимым полиномом
  // !!!!!!!!! для поля тоже заменить error(), try-catch qt вариантом: qDebug() qWarning()
//  void	qCritical ( const char * msg, ... )
//  void	qDebug ( const char * msg, ... )
//  void	qFatal ( const char * msg, ... )
//  void	qWarning ( const char * msg, ... )

  QApplication a(argc, argv);

  QApplication::setStyle("Cleanlooks");

  // задать кодировку
  QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
  QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

  ReedSolomon rs(31, 20); // инициализировать код РС
  // центрировать
  rs.move((QApplication::desktop()->width()  - rs.width())  / 2,
          (QApplication::desktop()->height() - rs.height()) / 2);
  rs.show();

  return a.exec();
}
catch (exception &e) {
  qDebug() << "error: " << e.what() << endl;
  return 1;
}
catch (...) {
  qDebug() << "Ой, неизвестное исключение.\n";
  return 2;
}
